﻿///Autor: Torley
///Erstellungsdatum: 2010-03-09
///Funktion: Eigenschaft die für das Zuckersammeln verantwortlich ist.
///Benutzt den Ticketmanager um Tickets für neuen Zucker zu bekommen
using System;
using System.Collections.Generic;
using System.Text;
using AntMe.Deutsch;

namespace AntMe.Spieler.OpenAnt.Eigenschaften
{
    public class ZuckerSammeln : IAmeise
    {
        AntMe.Spieler.OpenAnt.OpenAnt ReA;
        Ticket tic;

        public ZuckerSammeln(AntMe.Spieler.OpenAnt.OpenAnt Ameise)
        {
            ReA = Ameise;
        }

        #region IAmeise Member
        public bool Wartet()
        {
            return false;
        }

        public bool WirdMüde()
        {
            return false;
        }

        public bool Sieht(Zucker zucker)
        {
            return false;
        }

        public bool Sieht(Obst obst)
        {
            return false;
        }

        public bool ZielErreicht(Zucker zucker)
        {
            ReA.Nimm(zucker);
            tic = null;
            Hilfsfunktionen.MeinGeheZuBau(ReA);
            return true;
        }

        public bool ZielErreicht(Obst obst)
        {
            return false;
        }

        public bool RiechtFreund(Markierung markierung)
        {
            return false;
        }

        public bool SiehtFreund(Ameise ameise)
        {
            return false;
        }

        public bool SiehtVerbündeten(Ameise ameise)
        {
            return false;
        }

        public bool SiehtFeind(Wanze wanze)
        {
            return false;
        }

        public bool SiehtFeind(Ameise ameise)
        {
            return false;
        }

        public bool WirdAngegriffen(Wanze wanze)
        {
            return false;
        }

        public bool WirdAngegriffen(Ameise ameise)
        {
            return false;
        }

        public bool IstGestorben(Todesart todesart)
        {
            if (tic != null)
            {
                Ticketmanager.MeldeMisserfolg(tic, ReA);
                tic = null;
            }
            return false;
        }

        public bool Tick()
        {
            if (ReA.Ziel == null)
            {
                if (tic == null)
                {
                    tic = Ticketmanager.GibTicketZucker(ReA);
                    if (tic != null)
                    {
                        Hilfsfunktionen.MeinGeheZuZiel(ReA, tic.TicketZiel);
                    }
                }
                else
                {
                    if (tic.TicketZiel is Zucker)
                    {
                        if (((Zucker)tic.TicketZiel).Menge <= 0)
                        {
                            tic = null;
                        }
                        else
                        {
                            Hilfsfunktionen.MeinGeheZuZiel(ReA, tic.TicketZiel);
                        }
                    }
                }
            }
            if (ReA.Ziel is Bau && tic != null && ReA.AktuelleLast == 0)
            {
                Ticketmanager.MeldeMisserfolg(tic, ReA);
                tic = null;
            }
            return false;
        }

        #endregion
    }
}
